
package com.mu.rai.services;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for ipv6HeaderWithProtocol complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="ipv6HeaderWithProtocol">
 *   &lt;complexContent>
 *     &lt;extension base="{http://services.rai.mu.com}ipHeaderWithProtocol">
 *       &lt;sequence>
 *         &lt;element name="dst_ipv6" type="{http://services.rai.mu.com}ipv6DstAddress"/>
 *         &lt;element name="flow_label" type="{http://services.rai.mu.com}ipv6FlowLabel"/>
 *         &lt;element name="hop_limit" type="{http://services.rai.mu.com}ipv6HopLimit"/>
 *         &lt;element name="length" type="{http://services.rai.mu.com}lengthType"/>
 *         &lt;element name="next_header" type="{http://services.rai.mu.com}ipv6NextHeader"/>
 *         &lt;element name="src_ipv6" type="{http://services.rai.mu.com}ipv6SrcAddress"/>
 *         &lt;element name="traffic_class" type="{http://services.rai.mu.com}ipv6TrafficClass"/>
 *       &lt;/sequence>
 *     &lt;/extension>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ipv6HeaderWithProtocol", propOrder = {
    "dstIpv6",
    "flowLabel",
    "hopLimit",
    "length",
    "nextHeader",
    "srcIpv6",
    "trafficClass"
})
public class Ipv6HeaderWithProtocol
    extends IpHeaderWithProtocol
{

    @XmlElement(name = "dst_ipv6", required = true)
    protected Ipv6DstAddress dstIpv6;
    @XmlElement(name = "flow_label", required = true)
    protected Ipv6FlowLabel flowLabel;
    @XmlElement(name = "hop_limit", required = true)
    protected Ipv6HopLimit hopLimit;
    @XmlElement(required = true)
    protected LengthType length;
    @XmlElement(name = "next_header", required = true)
    protected Ipv6NextHeader nextHeader;
    @XmlElement(name = "src_ipv6", required = true)
    protected Ipv6SrcAddress srcIpv6;
    @XmlElement(name = "traffic_class", required = true)
    protected Ipv6TrafficClass trafficClass;

    /**
     * Gets the value of the dstIpv6 property.
     * 
     * @return
     *     possible object is
     *     {@link Ipv6DstAddress }
     *     
     */
    public Ipv6DstAddress getDstIpv6() {
        return dstIpv6;
    }

    /**
     * Sets the value of the dstIpv6 property.
     * 
     * @param value
     *     allowed object is
     *     {@link Ipv6DstAddress }
     *     
     */
    public void setDstIpv6(Ipv6DstAddress value) {
        this.dstIpv6 = value;
    }

    /**
     * Gets the value of the flowLabel property.
     * 
     * @return
     *     possible object is
     *     {@link Ipv6FlowLabel }
     *     
     */
    public Ipv6FlowLabel getFlowLabel() {
        return flowLabel;
    }

    /**
     * Sets the value of the flowLabel property.
     * 
     * @param value
     *     allowed object is
     *     {@link Ipv6FlowLabel }
     *     
     */
    public void setFlowLabel(Ipv6FlowLabel value) {
        this.flowLabel = value;
    }

    /**
     * Gets the value of the hopLimit property.
     * 
     * @return
     *     possible object is
     *     {@link Ipv6HopLimit }
     *     
     */
    public Ipv6HopLimit getHopLimit() {
        return hopLimit;
    }

    /**
     * Sets the value of the hopLimit property.
     * 
     * @param value
     *     allowed object is
     *     {@link Ipv6HopLimit }
     *     
     */
    public void setHopLimit(Ipv6HopLimit value) {
        this.hopLimit = value;
    }

    /**
     * Gets the value of the length property.
     * 
     * @return
     *     possible object is
     *     {@link LengthType }
     *     
     */
    public LengthType getLength() {
        return length;
    }

    /**
     * Sets the value of the length property.
     * 
     * @param value
     *     allowed object is
     *     {@link LengthType }
     *     
     */
    public void setLength(LengthType value) {
        this.length = value;
    }

    /**
     * Gets the value of the nextHeader property.
     * 
     * @return
     *     possible object is
     *     {@link Ipv6NextHeader }
     *     
     */
    public Ipv6NextHeader getNextHeader() {
        return nextHeader;
    }

    /**
     * Sets the value of the nextHeader property.
     * 
     * @param value
     *     allowed object is
     *     {@link Ipv6NextHeader }
     *     
     */
    public void setNextHeader(Ipv6NextHeader value) {
        this.nextHeader = value;
    }

    /**
     * Gets the value of the srcIpv6 property.
     * 
     * @return
     *     possible object is
     *     {@link Ipv6SrcAddress }
     *     
     */
    public Ipv6SrcAddress getSrcIpv6() {
        return srcIpv6;
    }

    /**
     * Sets the value of the srcIpv6 property.
     * 
     * @param value
     *     allowed object is
     *     {@link Ipv6SrcAddress }
     *     
     */
    public void setSrcIpv6(Ipv6SrcAddress value) {
        this.srcIpv6 = value;
    }

    /**
     * Gets the value of the trafficClass property.
     * 
     * @return
     *     possible object is
     *     {@link Ipv6TrafficClass }
     *     
     */
    public Ipv6TrafficClass getTrafficClass() {
        return trafficClass;
    }

    /**
     * Sets the value of the trafficClass property.
     * 
     * @param value
     *     allowed object is
     *     {@link Ipv6TrafficClass }
     *     
     */
    public void setTrafficClass(Ipv6TrafficClass value) {
        this.trafficClass = value;
    }

}
